package com.hikvision.rpq.sblearn.config;

import com.hikvision.rpq.sblearn.filter.MyFilter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @ConditionalOnWebApplication  //当前项目是Web项目的条件下。配置类才会生效
 *
 * @ConditionalOnProperty:
 * 作用：当配置文件中存在该配置时，配置类才会生效。
 * prefix 表示参数名的前缀，这里是log
 * name 表示参数名   enable
 * havingValue 表示指定的值，参数中配置的值需要跟指定的值比较是否相等，相等才满足条件
 * matchIfMissing 表示是否允许缺省配置。
 *
 * 这个功能可以作为开关，相比EnableXXX注解的开关更优雅，因为它可以通过参数配置是否开启，而EnableXXX注解的开关需要在代码中硬编码开启或关闭。
 * @author renpeiqian
 * @date 2021/9/7 15:01
 * @since
 */
@ConditionalOnWebApplication
@ConditionalOnProperty(prefix = "log",name = "enable",havingValue ="true",matchIfMissing = true)
@Configuration
public class FilterConfig {


    ///@Bean
    public MyFilter getMyFilter(){
        return new MyFilter();
    }
}
